﻿// Decompiled with JetBrains decompiler
// Type: System.Web.Razor.Parser.ParserBase
// Assembly: System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// MVID: 682513D6-F37E-48AC-9909-F3EE103CFF14
// Assembly location: D:\Project\Idea\无人机外网\uav\客户端工程\排查工具\bin\Release\System.Web.Razor.dll

using System.Web.Razor.Parser.SyntaxTree;
using System.Web.Razor.Resources;
using System.Web.Razor.Text;

namespace System.Web.Razor.Parser
{
  /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Represents the parser base class for the razor.</summary>
  public abstract class ParserBase
  {
    private ParserContext _context;

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the <see cref="T:System.Web.Razor.Parser.ParserContext" />.</summary>
    /// <returns>The <see cref="T:System.Web.Razor.Parser.ParserContext" />.</returns>
    public virtual ParserContext Context
    {
      get => this._context;
      set => this._context = value;
    }

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets a value that indicates whether the parser is a markup parser.</summary>
    /// <returns>true if the parser is a markup parser; otherwise, false.</returns>
    public virtual bool IsMarkupParser => false;

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets the other parser <see cref="T:System.Web.Razor.Parser.ParserBase" />.</summary>
    /// <returns>The other parser <see cref="T:System.Web.Razor.Parser.ParserBase" />.</returns>
    protected abstract ParserBase OtherParser { get; }

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Builds a span for the parser base.</summary>
    /// <param name="span">The span builder.</param>
    /// <param name="start">The beginning of the source location.</param>
    /// <param name="content">The content.</param>
    public abstract void BuildSpan(SpanBuilder span, SourceLocation start, string content);

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Blocks the parser.</summary>
    public abstract void ParseBlock();

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Creates documentation for the parse.</summary>
    public virtual void ParseDocument() => throw new NotSupportedException(RazorResources.ParserIsNotAMarkupParser);

    /// <summary>Parses the section in ordered list of the elements.</summary>
    /// <param name="nestingSequences">The pair of nesting sequences.</param>
    /// <param name="caseSensitive">true if the case is sensitive; otherwise, false.</param>
    public virtual void ParseSection(Tuple<string, string> nestingSequences, bool caseSensitive) => throw new NotSupportedException(RazorResources.ParserIsNotAMarkupParser);
  }
}
